#ifndef OGREUTIL_H_
#define OGREUTIL_H_

#include <iostream>
#include <string>
#include <utility>
#include <map>

using std::cout;
using std::endl;
using std::string;
using std::ostringstream;

#include "OGRE/Ogre.h"
#include "OGRE/OgreEntity.h"
#include "OGRE/OgreSubEntity.h"
#include "OIS/OIS.h"

#include "OISHandler.h"

class OgreUtil {
public:
	OgreUtil();
	virtual ~OgreUtil();

private:
	static Ogre::Root* root;
	static Ogre::Log* log;
	static bool exitAppTriggered;

public:
	static bool initializeOgre();
	static Ogre::RenderWindow* initializeWindow(Ogre::String pWindowsName);
	static OISHandler* initializeWindowOIS(Ogre::RenderWindow* pWindow);

	static Ogre::Root* getOgreRoot();
	static Ogre::Log* getOgreLog();
	static bool isExitAppTriggered();
	static void setExitAppTriggered();

};

#endif /* OGREUTIL_H_ */
